Skip to content

v0.6.3: meters centre on silence, slider glow/animation parity, tooltip fade#21

Merged
skyRolly merged 1 commit into
mainfrom
claude/beautiful-sagan-JAUFI
Jun 15, 2026
Merged

v0.6.3: meters centre on silence, slider glow/animation parity, tooltip fade#21
skyRolly merged 1 commit into
mainfrom
claude/beautiful-sagan-JAUFI

Conversation

@skyRolly

Copy link
Copy Markdown
Owner

Anamorph 0.6.2 feedback — all 8 items.

1 / 2. Correlation + L/R balance meters rest at 0 on silence.
Root cause of the open-time “0 → +1” sweep: the DSP’s published fast/slow correlation atomics were initialised to 1.0f, so before any audio the GUI read +1. Fixes: those atomics now seed to 0, and the meter publishes a fast mean-square energy value the GUI uses to detect silence. When the input drops below ≈ −85 dBFS (or before any audio at all), both pointers glide back to centre over a ~550 ms damped release — never a snap — exactly per the DSP/mixing/aesthetic reasoning in the feedback. Both the phase meter and the L/R balance meter follow this.

3. Window-scale animation reverted to the instant single-step transform — a resize doesn’t want an animation.

4. Tooltip fade-out. A TooltipWindow subclass intercepts JUCE’s hide (setVisible(false)) and ramps the window alpha down over a weak, fast ~90 ms non-linear (ease-out) tail, stepped from the editor’s vblank; new tips cancel the fade instantly. Follows the UI Animations switch (off ⇒ instant hide as before).

5. Slider glow now two-level like the knob arc. Hover glows; press glows brighter and wider — a gradient-opacity feather (the many-layer halo), not a hard widened stroke. The thumb halo is likewise two-level (hover vs press), and the thumb ring keeps a faint always-on glass micro-glow that brightens a touch on interaction.

6. Slider un-filled track brightens on hover/press, two levels, mirroring the knob face lift.

7. Linear sliders sweep on preset / A-B change (eased vpos, same mechanism as the knobs); a hand drag still tracks the cursor 1:1 (the eased position is bypassed while interacting).

8. Bottom-right Widen knob-slot continuity. When the algorithm swaps which knob lives in that slot (Haas Delay ⇄ Velvet Density), the incoming knob inherits the outgoing knob’s on-screen position and sweeps continuously from there to its own value, instead of teleporting. The two-knob Chorus layout (Rate + Depth) is deliberately left to its own separate per-knob registers, as requested — each knob owns its vpos, so the two-knob case never shares the single-knob slot’s start value.

Gates: 14/14 DSP self-tests · no new compiler warnings · pluginval strictness 10 PASSED.

Note on #4: tooltip window per-pixel alpha is platform-composited; on the off chance a host ignores window alpha it degrades to the previous instant hide.

https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv


Generated by Claude Code

…ip fade

1/2. The correlation + L/R balance pointers now sit at 0 (centre) when there's
     no signal instead of jumping to +1 on open: the published atomics seeded to
     0, plus a fast mean-square "energy" readout lets the meter detect silence
     and glide the pointer back to centre over a ~550 ms damped release (never a
     snap). Applies to both meters.
3.   Window-scale change reverted to the instant single-step transform (a resize
     doesn't want an animation).
4.   Tooltips fade out over a weak, fast (~90 ms) non-linear ramp instead of
     blinking off: a TooltipWindow subclass intercepts the hide and ramps window
     alpha from the editor's vblank. Follows the UI Animations switch.
5.   Slider blue-teal glow now has two distinct levels like the knob arc -- hover
     glows, press glows more+wider -- as a gradient-opacity feather, not a hard
     widened stroke; the thumb halo is likewise two-level and the thumb ring
     keeps a faint glass micro-glow.
6.   The un-filled (dark) part of a slider track lifts slightly on hover and more
     on press, matching the knob face's two-level brightening.
7.   Linear sliders now ease to their new value on a preset / A-B change (eased
     vpos), like the knobs; a hand drag still tracks 1:1.
8.   When the Widen algorithm swaps which knob occupies the bottom-right slot
     (Haas Delay <-> Velvet Density), the incoming knob inherits the outgoing
     knob's visual position so it sweeps continuously instead of teleporting; the
     two-knob Chorus layout keeps its own separate per-knob registers.

https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
@skyRolly skyRolly marked this pull request as ready for review June 15, 2026 15:40
@skyRolly skyRolly merged commit 5f5ba7d into main Jun 15, 2026
4 checks passed
skyRolly pushed a commit that referenced this pull request Jun 17, 2026
…, layout restructure

DSP
- Crossover drag no longer pitch-shifts: per-sample octaves/sec cutoff slew on
  every split, the same cap Mono Maker uses (#1).
- A/B "weird sound": at the silent duck bottom a forced swap now resets EVERY
  stateful node (Haas/Velvet/Chorus delay lines, all oversamplers, band + mono
  crossovers), so a same-algorithm A/B with different delay/rate/Drive can't
  replay old buffer contents as the duck lifts (#22).

Layout (#2/#3)
- The scope/meter block returns to its previous size: Advanced now GROWS the
  window downward by a full-width Multiband bar instead of squeezing the scope.
- Phase + balance meters hug the scope with an equal gap (cluster centred), so
  the scope-to-phase and scope-to-balance gaps always match, both modes.

Multiband module
- Renamed everywhere to Multiband; default ON, greys out when disabled (#20).
- Variable bands stay; new interaction model: width drag only near the width
  line (#15), add hint over the rest of a band (#14), click-drag adds a split AND
  positions it in one gesture (#16).
- Split delete x shows to the right of a hovered split (#6); reset clamps a split
  between its neighbours so it can't jump across one (#18).
- Double-click a split's number to type a frequency (7.7k / 7.7 / 7700 / 0.5,
  bare <= 20 = kHz) (#5).
- Scroll latch holds its target until the pointer really moves (3 px) (#4); band
  width scroll is 1 %/notch (#17).
- Smoother analyser: Catmull-Rom interpolation kills the low-end stair-stepping
  (#11); the noise floor is sunk below the frame so silence shows no green line
  (#10).
- Visual: split gets the same feathered glow as the width line (#7), an
  integrated rounded cap instead of a floating dot (#9), its bottom connects to
  the frame at rest and breaks only on hover (#12); the add "+" hugs the top edge
  and is larger (#13); a band-pass crossover hint while dragging a split (#19);
  shorter tooltip (#8).

Knobs/sliders (#21)
- A reset (double-click / Option-click) and a typed value now play the eased
  position sweep when Animations are on; a drag, the scroll wheel and host
  automation still snap.

https://claude.ai/code/session_01Y38PtwPxh2geBLta6yuUwv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants